from .init import init_api, api, init_db
from .logger import setup_logging_system, setup_simple_request_hooks
from .db import db
from .routers import init_blueprints
from flask_session import Session
from flask_migrate import Migrate


# 创建应用
def create_app(app):
  """
  创建并配置Flask应用
  
  Args:
      app: Flask应用实例
  """
  init_api(app)

  # 统一设置日志系统
  setup_logging_system(app)

  # 设置数据库
  init_db(app)

  migrate = Migrate(app, db)

  # 实例化session存储类
  session_store = Session()
  # 务必保证在数据库配置初始化以后才进行session存储类的初始化
  session_store.init_app(app)

  # 设置全局请求钩子
  setup_simple_request_hooks(app)

  # 注册蓝图
  init_blueprints(app)


# 声明允许导出的内容（当外部使用 from my_package import * 时生效）
__all__ = ["db"]
